package com.taotao.job.dao;

import java.util.Date;
import java.util.List;
import java.util.Set;

import com.github.pagehelper.Page;

import com.taotao.job.model.entity.JobDag;
import org.apache.ibatis.annotations.Param;

/**
 * 任务依赖的有向无环图信息DAO
 *
 * @author Fan Beibei
 * @date 2021-03-14 21:43:18
 */
public interface JobDagMapper {
    /**
     * 根据主键查询
     *
     * @param id 主键
     * @return
     */
    JobDag selectByPk(@Param("id") java.lang.Long id);

    /**
     * 根据主键批量查询
     *
     * @param idList 主键列表
     * @return
     */
    List<JobDag> selectByPkList(List<java.lang.Long> idList);


    /**
     * 根据主键删除
     *
     * @param id 主键
     * @return
     */
    int deleteByPk(@Param("id") java.lang.Long id);

    /**
     * 根据主键批量删除
     *
     * @param idList 主键列表
     * @return
     */
    int deleteByPkList(List<java.lang.Long> idList);


    /**
     * 插入记录返回主键
     *
     * @param record 记录
     * @return
     */
    int insert(JobDag record);

    /**
     * 批量插入记录,返回主键
     *
     * @param record 记录
     * @return
     */
    int batchInsert(List<JobDag> record);


    /**
     * 根据主键更新记录
     *
     * @param record 记录
     * @return
     */
    int updateByPk(JobDag record);


    /**
     * 分页查询
     *
     * @param param    查询参数
     * @param pageNum  页号
     * @param pageSize 页大小
     * @return
     */
    Page<JobDag> selectByPage(
            @Param("param") JobDag param,
            @Param("pageNum") int pageNum,
            @Param("pageSize") int pageSize);


    /**
     * 软删除
     *
     * @param ids    主键列表
     * @param opId   操作人id
     * @param opTime 操作时间
     * @return
     */
    int softDelByPks(@Param("ids") Set<java.lang.Long> ids, @Param("opId") Long opId, @Param("opTime") Date opTime);

//------------以上是生成代码-----------------------------------------------------------------------------------------------------------------



}